package com.lemon.cloud.resource.oauth.config;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.oauth2.provider.token.TokenStore;
import org.springframework.security.oauth2.provider.token.store.JdbcTokenStore;

import javax.sql.DataSource;

/**
 * @param
 * @author lemon
 * @description 配置授权中心信息
 * @return
 * @date 2019-08-11 23:02
 */
@Configuration
public class ApprovalManagementServerConfig {
    /** 保存token的时候需要 默认为spring中配置的datasource */
    @Autowired
    private DataSource dataSource;

    @Bean
    public TokenStore tokenStore() {
        // token保存在内存中（也可以保存在数据库、Redis中）。
        // 如果保存在中间件（数据库、Redis），那么资源服务器与认证服务器可以不在同一个工程中。
        // 注意：如果不保存access_token，则没法通过access_token取得用户信息
//        return new InMemoryTokenStore();

        return new JdbcTokenStore(dataSource);
    }
}